Mirroring between storage systems, where primary volumes at a primary storage system also known as local storage system) storage system are replicated synchronously or asynchronously to secondary volumes at a secondary storage system (also known a remote storage system), is often used to protect against storage failure.
When a primary volume (or the entire primary storage system) fails, a system administrator (human) needs to reassign the secondary volume to the host computer, to set the applications (which may fail due to time out) to online state and resume work from an unknown state, since the applications may have written data to cache before being written to the storage, data which may be lost.
In addition to the intervention required in the host computer, the secondary storage system cannot automatically switch roles with the primary storage system. This is because the secondary storage system cannot determine whether it lost connection with the primary storage system due to communication failure (failed communication with the secondary storage system only) or due to failure of the primary storage system. In the former case, the primary storage system may be still operational and if the secondary storage system would take over, it can cause a situation known as “split brain”, where two non-synchronized storage systems independently provide input/output (IO) services of inconsistent data. Therefore, a system administrator is required for switching the roles between the two storage systems. Such a failover procedure is very disruptive to the normal operation.